
#ifndef WXBASETYPE_H
#define WXBASETYPE_H

#define wS32  int
#define wU32  unsigned int
#define wU8   unsigned char
#define wCh8  char
#define wVoid void
#define wF32  float
#define wS16  short
#define wU16  unsigned short

#define FW 20
#define FH 20
#define LBPDETECTNUM 20000
#define SESCALE 1178//1.15f
#define ADWIDTH 60
#define EXTERN extern

typedef struct WXRect 
{
	wS32 x;
	wS32 y;
	wS32 width;
	wS32 height;
}WXRect;

typedef struct WXSize
{
	wS32 width;
	wS32 height;
}WXSize;

typedef struct WXPoint
{
	wS32 x;
	wS32 y;
}WXPoint;

typedef struct WXLBPCascade
{
	wS32 LBPNum;
	wS32 stageNum;
	wU8  *pRect;
	wS16 *pAlpha;
	wS16 *pStrongThreshold;
	wS16 *pStageCount;
}WXLBPCascade;

typedef struct WXHLCascade
{
	wS32 LBPNum;
	wS32 stageNum;
	wU8  *pRect;
	wU8  *pOrient;
	wS16 *pAlpha;
	wS16 *pStrongThreshold;
	wS16 *pStageCount;
}WXHLCascade;

typedef struct WXHaarCascade
{
	wS32 HaarNum;
	wS32 stageNum;
	wU8  *pMinDis;
	wU16 *p2Rect;
	wS16 *pWeakAlpha;
	wS16 *pHTWeakAlpha;
	wS16 *pStageCount;
	wS16 *pStrongThreshold;
	wS16 *pWeight;
	wS32 *pHTWeakThreshold;
	wS32 *pAccumu;
}WXHaarCascade;

typedef struct WXTMPMemery
{
	wU8  *pBuffer;
	wS32 count;
}WXTMPMemery;


wU8* g_Malloc (WXTMPMemery *pMemery, wS32 size);

#endif